// patient.c

#include <stdio.h>
#include <string.h>
#include "fileops.h"

void addPatient() {
    Patient p;
    printf("请输入病人姓名：");
    scanf("%s", p.name);
    printf("请输入病人年龄：");
    scanf("%d", &p.age);
    printf("请输入病人性别：");
    scanf("%s", p.gender);
    printf("请输入病人疾病：");
    scanf("%s", p.disease);
    printf("请输入病人住院日期（格式：yyyy-mm-dd）：");
    scanf("%s", p.admissionDate);

    writePatientToFile(p);
    printf("病人信息已添加。\n");
}

void deletePatient() {
    char name[50];
    printf("请输入要删除的病人姓名：");
    scanf("%s", name);

    deletePatientFromFile(name);
    printf("病人信息已删除。\n");
}

void findPatient() {
    char name[50];
    printf("请输入要查询的病人姓名：");
    scanf("%s", name);
    Patient patients[100];
    int count, i, found = 0;

    readAllPatientsFromFile(patients, &count);
    for (i = 0; i < count; i++) {
        if (strcmp(patients[i].name, name) == 0) {
            printf("姓名：%s, 年龄：%d, 性别：%s, 疾病：%s, 住院日期：%s\n", patients[i].name, patients[i].age,
               patients[i].gender, patients[i].disease, patients[i].admissionDate);
            found = 1;
            break;
        }
    }
    if (!found) {
        printf("未找到该病人的信息。\n");
    }
}

void modifyPatient() {
    char name[50];
    Patient newInfo;

    printf("请输入要修改的病人姓名：");
    scanf("%s", name);

    printf("请输入新的姓名：");
    scanf("%s", newInfo.name);
    printf("请输入新的年龄：");
    scanf("%d", &newInfo.age);
    printf("请输入新的性别：");
    scanf("%s", newInfo.gender);
    printf("请输入新的疾病：");
    scanf("%s", newInfo.disease);
    printf("请输入新的住院日期（格式：yyyy-mm-dd）：");
    scanf("%s", newInfo.admissionDate);

    modifyPatientInFile(name, newInfo);
    printf("病人信息已修改。\n");
}

void displayAllPatients() {
    Patient patients[100];
    int count, i;

    readAllPatientsFromFile(patients, &count);

    printf("\n********** 全部病人信息 **********\n\n");
    for (i = 0; i < count; i++) {
        printf("姓名：%s, 年龄：%d, 性别：%s, 疾病：%s, 住院日期：%s\n", patients[i].name, patients[i].age,
               patients[i].gender, patients[i].disease, patients[i].admissionDate);
    }
    printf("\n**********************************\n\n");
}
